package com.zhongge.stackOJ;

import java.util.Iterator;
import java.util.LinkedList;
import java.util.Stack;

/**
 * @ClassName LinkedValReversePut
 * @Description TODO 逆序输出链表值
 * @Author 笨忠
 * @Date 2025/8/23 10:21
 * @Version 1.0
 */
public class LinkedValReversePut {
    /**
     * 逆序输出链表值
     */
    public static void linkedValReversePut(LinkedList<Integer> list) {
        //首先判断如果链表为空就不做事情==》这步是默认有的 因为严谨性我们默认都要写这一步
        if (list.isEmpty()) {
            return;
        }

        //得有一个辅助栈
        Stack<Integer> stack = new Stack<>();

        //将两链表中的所有值全部入栈
        Iterator<Integer> iterator = list.iterator();
        while (iterator.hasNext()) {
            //入栈
            stack.push(iterator.next());
        }

        //再将栈中所有元素出栈输出
        while (!stack.isEmpty()) {
            System.out.print(stack.pop() + " ");
        }
    }
    public static void main(String[] args) {
        //有一个链表
        LinkedList<Integer> list = new LinkedList<>();
        list.addLast(20);
        list.addLast(45);
        list.addLast(73);
        list.addLast(62);

        //逆序输出
        linkedValReversePut(list);
    }
}
